package org.alex.nettychat.netty.custom.handler;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import org.alex.nettychat.netty.custom.protocol.MessageRequestPacket;
import org.alex.nettychat.netty.custom.protocol.MessageResponsePacket;

import java.time.LocalDateTime;

/**
 * SimpleChannelInboundHandler的使用非常简单。
 * 我们在继承这个类的时候，给它传递一个泛型参数，然后在channelRead0()方法里，
 * 不用再通过if逻辑来判断当前对象是否是本Handler可以处理的对象，也不用强转，
 * 不用往下传递本Handler处理不了的对象，这一切都已经交给父类SimpleChannelInboundHandler来实现，
 * 我们只需要专注于我们要处理的业务逻辑即可。
 *
 * @author : alex
 */
public class MessageResponseHandler extends SimpleChannelInboundHandler<MessageResponsePacket> {

    @Override
    protected void channelRead0(ChannelHandlerContext channelHandlerContext, MessageResponsePacket messageResponsePacket) throws Exception {
        Integer fromUserId = messageResponsePacket.getFromUserId();
        String fromUserName = messageResponsePacket.getFromUserName();

        System.out.println(fromUserName + ":" + messageResponsePacket.getMessage());
    }
}
